#include "JuegoClientImp.h"
#include <iostream>
#include <sstream>

JuegoClientImp::JuegoClientImp(unsigned int cantidadDeJugadores, Mapa* mapa) : Juego(cantidadDeJugadores,mapa)
{
}

void JuegoClientImp::tirarDados(Jugador* jugador, unsigned int cantidadDeDados) {
	std::stringstream dados;
	dados<<cantidadDeDados;
	string mensaje = "<jugada>\n";
	mensaje += "	<tirarDados jugador=\""+jugador->getColor()+"\" cantidad=\""+dados.str()+"\"/>\n";
	mensaje += "</jugada>";
	//cliente->enviarMensaje(mensaje);
}

void JuegoClientImp::pasar(Jugador* jugador) {
	string mensaje = "<jugada>\n";
	mensaje += "	<pasar jugador=\""+jugador->getColor()+"\"/>\n";
	mensaje += "</jugada>";
	//cliente->enviarMensaje(mensaje);
}

void JuegoClientImp::realizarAtaque(Ataque* ataque) {
	string mensaje = "<jugada>\n";
	mensaje += "	<realizarAtaque jugador=\""+ataque->getJugadorAtacante()->getColor()+"\"";
	mensaje += " territorioAtacante=\""+ataque->getTerritorioAtacante()->getNombre()+"\"";
	mensaje += " territorioEnemigo=\""+ataque->getTerritorioEnemigo()->getNombre()+"\"";
	mensaje += "</jugada>\n";
	//cliente->enviarMensaje(mensaje);
	std::cout << mensaje;
}

void JuegoClientImp::colocarEjercitos(Jugador *jugador, Territorio *territorio, unsigned int cantidadDeEjercitos) {
	string mensaje = "<jugada>\n";
	std::stringstream ejercitos;
	std::cout<<cantidadDeEjercitos;
	mensaje += "	<colocarEjercitos jugador=\""+jugador->getColor()+"\"";
	mensaje += " territorioJugador=\""+territorio->getNombre()+"\"";
	mensaje += " cantidadDeEjercitos=\""+ejercitos.str()+"\"/>\n";
	mensaje += "</jugada>\n";
	//cliente->enviarMensaje(mensaje);
	std::cout << mensaje;
}

void JuegoClientImp::moverEjercitos(Jugador* jugador, Territorio* origen, Territorio* destino, unsigned int cantidadDeEjercitos) {
	string mensaje = "<jugada>\n";
	std::stringstream ejercitos;
	ejercitos<<cantidadDeEjercitos;
	mensaje += "	<moverEjercitos jugador=\""+jugador->getColor()+"\"";
	mensaje += " territorioOrigen=\""+origen->getNombre()+"\"";
	mensaje += " territorioDestino=\""+destino->getNombre()+"\"";
	mensaje += " cantidadDeEjercitos=\""+ejercitos.str()+"\"/>\n";
	mensaje += "</jugada>\n";
	//cliente->enviarMensaje(mensaje);
	std::cout << mensaje;
}

void JuegoClientImp::abandonar(Jugador* jugador) {
	string mensaje = "<jugada>\n";
	mensaje += "	<abandonar jugador=\""+jugador->getColor()+"\"/>";
	mensaje += "</jugada>\n";
	//cliente->enviarMensaje(mensaje);
	std::cout << mensaje;
}

JuegoClientImp::~JuegoClientImp()
{
}
